#ifndef _BROWSER_CONF__H_
#define _BROWSER_CONF__H_

#include <QWidget>
#include <QUrl>
#include <QFile>
#include <QNetworkProxy>
#include "ui_browserconf.h"



/**
 * browserconf.h browseconf.cpp (LEANDRO)
 *
 * Mostra um widget com entradas para configurar os seguintes elementos
 * do browser:
 * - paginal inicial(campo texto)
 * - possui proxy (checkbox)
 *     - endereço proxy (campo texto)
 *     - porta de proxy (campo spinbox(0-65536)
 *     - possui autenticação (checkbox)
 *          - usuário (campo texto)
 *          - senha (campo texto password)
 * "salvar" e "cancelar"
 * obs.: validar os campos
 * obs.2: pode ser feito no qtdesigner
 *
 * Salvar as configurações em um arquivo de texto, com o seguinte formato:
 * Nome do arquivo: "browserconf.txt"(criar arquivo se não existir)

 <paginainicial>
 <possui_proxy: 0 ou 1>
 <endereco_de_proxy>
 <porta_de_proxy>
 <possui_autenticacao: 0 ou 1>
 <username>
 <password>

 * exemplo:

 http://www.google.com.br
 1
 cache.uel.br
 8080
 1
 uel
 londrina

 * TRECHO DE CODIGO PARA SETAR O PROXY:

	QNetworkProxy proxy;
	proxy.setType(QNetworkProxy::HttpProxy);
	proxy.setHostName("cache.uel.br");
	proxy.setPort(8080);
	proxy.setUser("uel");
	proxy.setPassword("londrina");
	QNetworkProxy::setApplicationProxy(proxy);

 * PARA DESFAZER O PROXY(SEM PROXY):

	QNetworkProxy proxy;
	proxy.setType(QNetworkProxy::NoProxy);
	QNetworkProxy::setApplicationProxy(proxy);
 */
 class BrowserConf : public QWidget
 {
	 Q_OBJECT

  public:
   /**
    * Criar sub-widgets, carregar arquivo browserconf.txt(se existir, senão criar),
    * setar valores dos widget de acordo com a configuração carregada
    */

    BrowserConf(QWidget *parent=0);

    QUrl*
    getStartPage();

  private slots:

	  void validateAndSave();

  private:

	  Ui::browserconf
	  ui;

	  QFile*
	  pConfFile;

		  bool
		  lerArquivo();

		  bool
		  salvarArquivo();

	  QUrl*
	  pStartPage;

		  void
		  setUistartPage();

		  void
		  getUistartPage();

	  QNetworkProxy
	  proxy;

		  void
		  setUiproxy();

		  void
		  getUiproxy();

		  void
		  setProxy();

	  int
	  hasProxy;

	  int
	  hasAuthentication;

};

#endif /* _BROWSER_CONF__H_ */







